package com.xinqi.task;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.xinqi.entity.Blog;
import com.xinqi.service.BlogService;
import lombok.extern.slf4j.Slf4j;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.scheduling.quartz.QuartzJobBean;

import java.util.Set;
@Slf4j
public class LikeTask extends QuartzJobBean {
    @Autowired
    BlogService blogService;

    @Autowired
    StringRedisTemplate stringRedisTemplate;

    /**
     * 用来从redis中的zset中获取点赞缓存的键值对，间隔时间存入mysql
     * @param context
     * @throws JobExecutionException
     */
    @Override
    protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
       // 要执行的内容就写在这个函数中
//        blogService.updateAllLikeListToDatabase();//这个没使用pipeline技术，效果应该是明显低于updateAllLikeListToDatabaseByPipeline1
        log.debug("LikeTask - time is {}",System.currentTimeMillis());
        blogService.updateAllLikeListToDatabaseByPipeline1();//这个使用了pipeline技术，但是还有优化空间，比如书对sql的更新可以说批量更新

//        blogService.updateAllLikeListToDatabaseByLua();//这个使用了lua技术，但是还有优化空间，比如说对sql的更新可以说批量更新
    }
}